/*
 * at91sam9x5ek.dtsi - Device Tree file for AT91SAM9x5CM Base board
 *
 *  Copyright (C) 2012 Atmel,
 *                2012 Nicolas Ferre <nicolas.ferre@atmel.com>
 *
 * Licensed under GPLv2 or later.
 */
#include "at91sam9x5cm.dtsi"

/ {
	model = "Atmel AT91SAM9X5-EK";
	compatible = "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";

	chosen {
		bootargs = "root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs";
		stdout-path = "serial0:115200n8";
	};

	ahb {
		apb {
			mmc0: mmc@f0008000 {
				pinctrl-0 = <
					&pinctrl_board_mmc0
					&pinctrl_mmc0_slot0_clk_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
					cd-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>;
				};
			};

			mmc1: mmc@f000c000 {
				pinctrl-0 = <
					&pinctrl_board_mmc1
					&pinctrl_mmc1_slot0_clk_cmd_dat0
					&pinctrl_mmc1_slot0_dat1_3>;
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
					cd-gpios = <&pioD 14 GPIO_ACTIVE_HIGH>;
				};
			};

			dbgu: serial@fffff200 {
				status = "okay";
			};

			usart0: serial@f801c000 {
				status = "okay";
			};

			usb2: gadget@f803c000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_board_usb2>;
				atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			isi: isi@f8048000 {
				status = "disabled";
				port {
					isi_0: endpoint@0 {
						remote-endpoint = <&ov2640_0>;
						bus-width = <8>;
					};
				};
			};

			i2c0: i2c@f8010000 {
				status = "okay";

				wm8731: wm8731@1a {
					compatible = "wm8731";
					reg = <0x1a>;
				};

				ov2640: camera@0x30 {
					compatible = "ovti,ov2640";
					reg = <0x30>;
					pinctrl-names = "default";
					pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
					resetb-gpios = <&pioA 7 GPIO_ACTIVE_LOW>;
					pwdn-gpios = <&pioA 13 GPIO_ACTIVE_HIGH>;
					clocks = <&pck0>;
					clock-names = "xvclk";
					assigned-clocks = <&pck0>;
					assigned-clock-rates = <25000000>;
					status = "disabled";

					port {
						ov2640_0: endpoint {
							remote-endpoint = <&isi_0>;
							bus-width = <8>;
						};
					};
				};
			};

			pinctrl@fffff400 {
				camera_sensor {
					pinctrl_pck0_as_isi_mck: pck0_as_isi_mck-0 {
						atmel,pins =
							<AT91_PIOC 15 AT91_PERIPH_C AT91_PINCTRL_NONE>;	/* ISI_MCK */
					};

					pinctrl_sensor_power: sensor_power-0 {
						atmel,pins =
							<AT91_PIOA 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
					};

					pinctrl_sensor_reset: sensor_reset-0 {
						atmel,pins =
							<AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
					};
				};

				mmc0 {
					pinctrl_board_mmc0: mmc0-board {
						atmel,pins =
							<AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PD15 gpio CD pin pull up and deglitch */
					};
				};

				mmc1 {
					pinctrl_board_mmc1: mmc1-board {
						atmel,pins =
							<AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PD14 gpio CD pin pull up and deglitch */
					};
				};

				usb2 {
					pinctrl_board_usb2: usb2-board {
						atmel,pins =
							<AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;		/* PB16 gpio vbus sense, deglitch */
					};
				};
			};

			spi0: spi@f0000000 {
				status = "okay";
				cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
				m25p80@0 {
					compatible = "atmel,at25df321a";
					spi-max-frequency = <50000000>;
					reg = <0>;
				};
			};

			watchdog@fffffe40 {
				status = "okay";
			};

			ssc0: ssc@f0010000 {
				status = "okay";
			};
		};

		usb0: ohci@00600000 {
			status = "okay";
			num-ports = <3>;
			atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW *//* Activate to have access to port A */
					   &pioD 19 GPIO_ACTIVE_LOW
					   &pioD 20 GPIO_ACTIVE_LOW
					  >;
		};

		usb1: ehci@00700000 {
			status = "okay";
		};
	};

	sound {
		compatible = "atmel,sam9x5-wm8731-audio";

		atmel,model = "wm8731 @ AT91SAM9X5EK";

		atmel,audio-routing =
			"Headphone Jack", "RHPOUT",
			"Headphone Jack", "LHPOUT",
			"LLINEIN", "Line In Jack",
			"RLINEIN", "Line In Jack";

		atmel,ssc-controller = <&ssc0>;
		atmel,audio-codec = <&wm8731>;
	};
};
